package edu.cuit.avatar.annotations;

import java.lang.annotation.*;

/**
 * 元注解:对注解本身进行配置说明的注解
 *      @Retention: 配置该注解保留的阶段
 *          SOURCE: 源码阶段
 *          CLASS: 字节码阶段
 *          RUNTIME: 运行时阶段
 *      @Target: 该注解可以作用在什么类型上
 *      @Documented: 是否文档说明
 *      @Inherited
 * @author <a href="mailto:1020zhaodan@163.com">Adan</a>
 * @version 1.0
 * @date 2025/7/19 14:42
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Entity {
    /**
     * 注解属性
     * 使用注解时,需要给定属性值;多个属性用,分割
     * @Entity(name = "", value = "")
     *
     * 如果该注解只有一个属性,且属性名为value,则 value = 可以省略
     *
     * 属性可以有默认值，没有指定该属性时，那么就是默认值
     */
    String value();

    /**
     * 属性默认值
     */
    boolean required() default true;
}
